/* This function wraps around the fixed 8-bit decoder, performing the
 * basis transformations necessary to meet the CCSDS standard
 *
 * Copyright 2002, Phil Karn, KA9Q
 * May be used under the terms of the GNU Lesser General Public License (LGPL)
 */
#include "ccsds.h"
#include "fec.h"

int decode_rs_ccsds(data_t* data, int* eras_pos, int no_eras, int pad)
{
    int i, r;
    data_t cdata[NN];

    /* Convert data from dual basis to conventional */
    for (i = 0; i < NN - pad; i++)
        cdata[i] = Tal1tab[data[i]];

    r = decode_rs_8(cdata, eras_pos, no_eras, pad);

    if (r > 0) {
        /* Convert from conventional to dual basis */
        for (i = 0; i < NN - pad; i++)
            data[i] = Taltab[cdata[i]];
    }
    return r;
}
